﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyCode.Project.Domain.Message.Request.DouYin
{
   public  class DouYinCommonParam
    {
        /// <summary>
        /// (必填)调用的API接口名称 示例值 token.create 
        /// </summary>
        public string Method { get; set; }

    
    }


    public class DouYinVerify
    {
        /// <summary>
        /// 一次验券的标识 (用于短时间内的幂等)
        /// </summary>
        public string verify_token { get; set; }

        /// <summary>
        /// 验券准备接口返回的加密抖音券码
        /// </summary>

        public List<string> Encrypted_data { get; set; }
    }


    public class DouYinCancelVerifyQuery
    {
        /// <summary>
        /// 代表券码一次核销的唯一标识（验券时返回）
        /// </summary>
        public string verify_id { get; set; }

        /// <summary>
        /// 代表一张券码的标识（验券时返回）
        /// </summary>
        public string certificate_id { get; set; }

        ///// <summary>
        ///// 取消核销总次数（多次卡商品可传，优先级低于verify_id）注意：如果是分门店结算，此字段不要传！！！
        ///// </summary>
        //public int? times_card_cancel_count { get; set; }

        ///// <summary>
        ///// 撤销核销幂等操作，主要针对次卡，避免因超时等原因在短时间内重复请求导致撤销多次（幂等有效期1小时）注意：如果是分门店结算，此字段不要传！！！
        ///// </summary>
        //public string cancel_token { get; set; }
    }

    public class DouYinVerifyQuery
    {
        /// <summary>
        ///必填: 一次验券的标识 (用于短时间内的幂等) 
        /// </summary>
        public string verify_token { get; set; }

        /// <summary>
        ///必填: 核销的抖音门店id
        /// </summary>
        public string poi_id { get; set; }

        /// <summary>
        /// 验券准备接口返回的加密抖音券码(多次卡商品，如果需要一次核销多份，list中传多个相同encrypted_code)
        /// </summary>
        public List<string> encrypted_codes { get; set; }

        /// <summary>
        ///三方原始券码值列表 (encrypted_codes/codes/code_with_time_list必须三选一)  多次卡商品，如果需要一次核销多份，list中传多个
        /// </summary>
        public List<string> codes { get; set; }

        /// <summary>
        /// 抖音侧的订单号 (非预导码模式的三方券码必需)
        /// </summary>
        public string order_id { get; set; }

        /// <summary>
        /// 带有核销时间的三方码列表（如果code_with_time_list 和 codes 同时传， 本字段优先级更高）
        /// </summary>
        public List<string> code_with_time_list { get; set; }

        /// <summary>
        /// 三方码
        /// </summary>
        public string code { get; set; }

        /// <summary>
        /// 核销时间戳（秒）
        /// </summary>
        public long? verify_time { get; set; }

        /// <summary>
        /// 验签
        /// </summary>
        public List<string> verify_sign_list { get; set; }



    }
}
